package com.zone.infrastructure.persistent.dao;

import com.zone.infrastructure.persistent.po.RaffleActivityAccount;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * @author: zongzi
 * @description: TODO
 * @date: 2024/6/24
 */
@Mapper
public interface IRaffleActivityAccountDao {

    /**
     * 更新活动账户信息
     *
     * @param raffleActivityAccount 活动账户实体
     * @return 更新的行数
     */
    int update(RaffleActivityAccount raffleActivityAccount);

    /**
     * 更新活动账户信息
     *
     * @param raffleActivityAccount 活动账户实体
     */
    void insert(RaffleActivityAccount raffleActivityAccount);

    /**
     * 获取用户活动次数账户
     *
     * @param userId 用户id
     * @return
     */
    RaffleActivityAccount get(@Param("userId") String userId, @Param("activityId") Long activityId);

    /**
     * 扣减用户活动删除次数
     *
     * @param userId 用户id
     * @param activityId 活动id
     * @return
     */
    int decrCountSurplus(@Param("userId") String userId, @Param("activityId") Long activityId);

    /**
     * 扣减用户活动删除次数
     *
     * @param userId 用户id
     * @param activityId 活动id
     * @return
     */
    int decrMonthCountSurplus(@Param("userId") String userId, @Param("activityId") Long activityId);

    /**
     * 扣减用户活动删除次数
     *
     * @param userId 用户id
     * @param activityId 活动id
     * @return
     */
    int decrDayCountSurplus(@Param("userId") String userId, @Param("activityId") Long activityId);
}
